first order logic in ai